package com.ffs.fsm.thread;

import java.util.Queue;

/**
 * 抽象队列，维护queue（需要阻塞队列：LinkedBlockingQueue）
 * @author ffs80 created 2021/7/9
 */
public abstract class AbstractQueue<T> implements ITaskQueue<T>{
    /**
     * 内部维护的阻塞队列
     */
    protected Queue<T> queue;


    @Override
    public T poll() {
        return this.queue.poll();
    }

    @Override
    public int size() {
        return queue.size();
    }

    @Override
    public boolean offer(T var) {
        return queue.offer(var);
    }

    /**
     * 队列初始化（由子类完成，为了提高性能，需要初始化的时候加上容量大小）
     */
    public abstract void init();
}
